#pragma once

#include "../Packet/DataPacket.h"
#include "../Packet/TimeSlot.h"
#include "Parser.h"

class CMediaSource1
{
public:
    CMediaSource1( string );
    virtual ~CMediaSource1(void);

protected:
    string     filename ;

public :
    virtual Bool	    Initialize() = 0;
    virtual string     GetSDP() = 0;
    virtual CTimeSlot * GetTimeSlot( UInt32 ) = 0 ;
    virtual UInt32       GetDuration() = 0;

    virtual SLOT_TABLE*	GetLengthTable() = 0;
    virtual UInt32	    GetSecondNum() = 0;

    //virtual UInt32 *     GetKeyFrames() = 0;
    //virtual UInt32       GetKeyFrmCount() = 0;

	//add by bound 2006-7-18 16:21:24
	virtual UInt32			GetNumOfIndex() = 0;

	virtual UInt16			GetAudioNumber() = 0;
	virtual UInt16			GetVideoNumber() = 0;

	virtual UInt32			GetAudioBitrate() = 0;
	virtual UInt32			GetVideoBitrate() = 0;
	virtual UInt32			GetBitrate() = 0;

	//add by bound 2006-7-31 11:41:07
	virtual	Int32	SeekBySliceNum(UInt32& nSliceNum)=0;
	virtual	CTimeSlot* ReadTimeSlotByDuration(UInt32 nSliceNum,UInt32 nBeginStamp,UInt32 nEndStamp)=0;
	virtual	CTimeSlot* GetTimeSlotByDuration(UInt32 nSliceNum,UInt32 nBeginStamp,UInt32 nEndStamp)=0;
};
